Application-Specific Models and Pointcuts Using a Logic Meta Language
نویسندگان
چکیده
In contemporary aspect-oriented languages, pointcuts are usually specified directly in terms of the structure of the source code. The definition of such low-level pointcuts requires aspect developers to have a profound understanding of the entire application’s implementation and often leads to complex, fragile, and hard to maintain pointcut definitions. To resolve these issues, we present an aspect-oriented programming system that features a logic-based pointcut language that is open such that it can be extended with application-specific pointcut predicates. These predicates define an application-specific model that serves as a contract that base-program developers provide and aspect developers can depend upon. As a result, pointcuts can be specified in terms of this more high-level model of the application which confines all intricate implementation details that are otherwise exposed in the pointcut definitions themselves.
منابع مشابه
A Symbiotic Approach to Aspect-Oriented Logic Meta Programming In a Prototype-based Language
To date, most aspect-oriented programming technology is founded on classbased programming. Class-based object-orientation, however, covers only half of the object-oriented paradigm. The prototype-based subparadigm structures programs using objects alone, without requiring class abstractions. It is mostly this lack of classes why prototype-based languages have been left untouched by aspect techn...
متن کاملOn the Expressiveness of Parameterized Finite-state Runtime Monitors On the Expressiveness of Parameterized Finite-state Runtime Monitors?
Many contemporary runtime-verification tools instrument a program under test with finite-state runtime monitors that can be parameterized through variable-to-object bindings. Often, such tools provide a specification formalism that is some form of syntactic extension to an aspect-oriented programming language. The tools then transform monitor specifications into aspects that bind the monitors’ ...
متن کاملEscaping with Future Variables in HALO
HALO is a novel aspect language introducing a logic-based pointcut language which combines history-based pointcuts and “escape” conditions for interacting with the base language. This combination is difficult to support when escape conditions access context exposed by “future” join points. This paper introduces a weaving mechanism based on copying objects for resolving such pointcuts. Though th...
متن کاملBack to the future Pointcuts as Predicates over Traces
Pointcuts in aspect-oriented languages can be seen as predicates over events in the computation of a program. The ability to express temporal relations between such events is a key feature towards more expressive pointcut languages. In this paper, we describe the design and implementation of a pointcut language within which pointcuts are predicates over the complete execution trace of the progr...
متن کاملTracechecks: Defining Semantic Interfaces with Temporal Logic
Tracechecks are a formalism based on linear temporal logic (LTL) with variable bindings and pointcuts of the aspect-oriented language AspectJ for the purpose of verification. We demonstrate how tracechecks can be used to model temporal assertions. These assertions reason about the dynamic control flow of an application. They can be used to formally define the semantic interface of classes. We e...
متن کامل